package controltest

import "fmt"

func Test() {
	fmt.Println("controltest")
	a := 1
	for a < 2 {
		fmt.Println(a)
		a++
	}
	fmt.Println("--------for range---------")
	//定义map
	b := make(map[int]string, 5)
	b[1] = "111"
	b[2] = "111"
	b[3] = "aaaaaa"
	for i, i2 := range b {
		println(i, i2)
		if i == 1 {
			return
		}

	}
	fmt.Println("--------switch---------")
	var c int = 1
	fmt.Println(c)
	switch c {
	case 1:
		fmt.Println("执行第一个")
		break
	case 2:
		fmt.Println("执行第二个")
		break
	default:
		fmt.Println("default")
	}
	fmt.Println("------select -----------")

	ch := make(chan int) // 创建一个通道

	go func() {
		ch <- 1 // 向通道中发送数据
	}()
	value := <-ch
	fmt.Println(value) // 输出 1
	// 在 select 之前确保通道中有数据
	select {
	case x := <-ch: // 从通道接收数据，并赋值给 x
		fmt.Println("Received:", x) // 这里会打印 "Received: 1"
	case ch <- 5: // 向通道发送数据
		fmt.Println("Sent 5 to channel")
	default: // 如果通道操作都无法执行，执行默认操作
		fmt.Println("No communication")
	}

}
